package net.sk.china.city.mapper;

import java.math.BigDecimal;
import java.util.List;
import net.sk.china.city.domain.ArDonate;
import net.sk.china.city.domain.ArDonateSource;
import net.sk.china.city.domain.vo.DonationRankVO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;

/**
 * 捐赠列表Mapper接口
 * 
 * @author gxf
 * @date 2024-04-07
 */
@Mapper
public interface ArDonateMapper extends BaseMapper<ArDonate>
{
    /**
     * 查询捐赠列表
     * 
     * @param id 捐赠列表主键
     * @return 捐赠列表
     */
    public ArDonate selectArDonateById(Long id);

    /**
     * 查询捐赠列表列表
     * 
     * @param arDonate 捐赠列表
     * @return 捐赠列表集合
     */
    public List<ArDonate> selectArDonateList(ArDonate arDonate);

    /**
     * 新增捐赠列表
     * 
     * @param arDonate 捐赠列表
     * @return 结果
     */
    public int insertArDonate(ArDonate arDonate);

    /**
     * 修改捐赠列表
     * 
     * @param arDonate 捐赠列表
     * @return 结果
     */
    public int updateArDonate(ArDonate arDonate);

    /**
     * 删除捐赠列表
     * 
     * @param id 捐赠列表主键
     * @return 结果
     */
    public int deleteArDonateById(Long id);

    /**
     * 批量删除捐赠列表
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteArDonateByIds(Long[] ids);

    /**
     * 获取捐赠排行榜
     * @return
     */
    List<DonationRankVO> donationRank(ArDonateSource arDonateSource);

    // 捐赠总额
    @Select("SELECT SUM(total_price) FROM ar_donate where platform_id LIKE CONCAT('%', #{platformId}, '%')")
    BigDecimal selectTotalPriceSum(String platformId);
}
